package com.pumpkin.jschsftpdemo.shell;

import com.jcraft.jsch.Channel;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;

import java.util.Properties;

/**
 * 可交互式的
 */
public class InteractiveShell {
    public static void main(String[] args) {

        String username = "root";
        String password = "Guoxinyuan1121.";
        String host = "47.93.247.196";
        int port = 22;

        // 创建JSch对象
        JSch jSch = new JSch();
        Session jSchSession = null;
        Channel jschChannel = null;

        try{
            // 根据主机账号、ip、端口获取一个Session对象
            jSchSession = jSch.getSession(username, host, port);

            // 存放主机密码
            jSchSession.setPassword(password);

            // 去掉首次连接确认
            Properties config = new Properties();
            config.put("StrictHostKeyChecking", "no");
            jSchSession.setConfig(config);

            // 超时连接时间为3秒
            jSchSession.setTimeout(3000);

            // 进行连接
            jSchSession.connect();

            jschChannel = jSchSession.openChannel("shell");

            jschChannel.setInputStream(System.in);
            jschChannel.setOutputStream(System.out);

            jschChannel.connect();
        }
        catch(Exception e){
            System.out.println(e);
        }
    }
}
